Non-transitory computer-readable recording medium, information processing apparatus and printing method

ABSTRACT

When an editing APP receives a print instruction while designating an image to be printer, a supporting program receives a specific parameter and processes intermediate image data, and a general-use printing program generates print data based on the processed intermediate image data and transmits the print data to a printer. On the other hand, when the editing APP receives a preview instruction while designating an image to be printed, the supporting program receives a specific parameter and processes intermediated image data. Then, the general-use printing program responds to the editing APP without transmitting print data to the printer.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. Ser. No.17/200,977 filed on Mar. 15, 2021, which is a continuation of U.S. Ser.No. 16/795,722 filed on Feb. 20, 2020, now U.S. Pat. No. 10,949,149granted on Mar. 16, 2021 and claims priority under 35 U.S.C. § 119 fromJapanese Patent Application No. 2019-063907 filed on Mar. 28, 2019. Theentire subject matter of each of which is incorporated herein byreference.

RELATED ART

There has been widely known a technique to control a printer from aninformation processing apparatus such as a personal computer, aconfiguration of installing a printer driver in the informationprocessing apparatus, generating print data using the printer driver andtransmitting the print data to the printer. The printer driver isprovided by a manufacturer of the printer and is adapted to variousfunctions the printer has, and thus can make full use of the printer.

SUMMARY

Recently, a technique of controlling a printer using a general-useprinting program which is standardly implemented in an operating system(OS), without using the above-mentioned printer driver, has been inpractical use. According to such a technique, when a printer isdetected, the OS associates a printer with the OS-standard general-useprinting program. Thereafter, it becomes possible that, when the OSreceives a print instruction corresponding to the printer, printing isexecuted using the OS-standard general-use printing program, withoutusing the printer driver.

Even in the printing using the above-mentioned OS-standard general-useprinting program, as with the printer driver, it is desirable that aprocessing function for generating print data in which processes such asa magnification/reduction process and a combining process are applied toan image is supported. If the general-use printing program supports suchprocessing function, it is possible that processes that are not intendedby the user are applied to the print data due to setting mistake by theuser or the like. In this case, even if print data to which suchprocesses are applied is transmitted to a printer, a print product thatthe user desires will not be output and expendable supplies will bewastefully consumed.

The present specification discloses a technique of reducing printingbased on an image to which processes that are not intended by the userare applied in an information processing apparatus in which anOS-standard general-use printing program is implemented.

According to aspects of the present disclosure, there is provided anon-transitory computer-readable recording medium for an informationprocessing apparatus, the information processing apparatus having acontroller, a general-use printing program being implemented in anoperating system of the information processing apparatus, an applicationprogram being implemented in the information processing apparatus, therecording medium containing computer-executable programs realizing asupporting program corresponding to a printer connectable to theinformation processing apparatus. The supporting program causing, whenexecuted by the controller, the information processing apparatus toperform a receiving process when the general-use printing programreceives a particular instruction from the application program, theapplication program being configured to input the particular instructionto the general-use printing program in a state where an image to beprinted being designated through the application program, the receivingprocess being a process of receiving a processing setting used forprocessing intermediate image data, the intermediate image data beingdata output from the general-use printing program, the intermediateimage data being image data indicating the designated image, theparticular instruction being an instruction to execute a particularprocess regarding the designated image, and a processing process ofprocessing the intermediated image data based on the received processingsetting, the intermediate image data being data output from thegeneral-use printing program, the processing setting being settingreceived in the receiving process, the processed intermediate image databeing output to the general-use printing program, the intermediate imagedata indicating the designated image, the general-use printing programselectively executing, after the processing process, one of a print datatransmitting process and a response outputting process, the print datatransmitting process including a process of generating print data basedon the processed intermediate image data and transmitting the generatedprint data to the printer, the response outputting process being aprocess of transmitting a response to the application program withouttransmitting print data to the printer.

BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS

FIG. 1 is a block diagram showing an electrical configuration of a printsystem of a first embodiment.

FIG. 2 is a sequential chart showing an example of an order ofoperations by respective programs.

FIG. 3 is a sequential chart showing an example of an order ofoperations by respective programs.

FIGS. 4A-4C are diagrams of a UI showing examples of screens to bedisplayed.

FIGS. 5A and 5B are diagrams of a UI showing examples of screens to bedisplayed.

FIG. 6 is a sequential chart showing an example of an order ofoperations by respective programs which are used in a print system of asecond embodiment.

DETAILED DESCRIPTION OF THE EMBODIMENT First Embodiment

Hereinafter, referring to the accompanying drawings, a print systemusing programs according to the first embodiment will be described indetail. The present embodiment shows a concrete example of the printsystem including a personal computer (hereinafter, referred to as a“PC”) and a printer.

An example of a configuration of a print system in which programsaccording to the first embodiment are executed is shown in FIG. 1 . Thesystem shown in FIG. 1 includes a PC 1, a printer 2 and a printer 3. ThePC 1 is an example of an information processing apparatus. The printer 2and the printer 3 are devices having a printing function and areconfigured to communicate with the PC 1 through a local communication ora network communication. it is noted that a plurality of printers 2 maybe connected to the PC 1.

As shown in FIG. 1 , the PC 1 includes a controller 10, a user interface(hereinafter, referred to as a “UI”) 20 and a communication interface(hereinafter, referred to as a “communication I/F”) 30. The UI 20 andthe communication I/F 30 are electrically connected to the controller10.

The UI 20 includes hardware configured to display various pieces ofinformation and receive user's input of instructions. The UI 20 mayinclude a touch panel having both an input receiving function and adisplaying function, or a combination of a display having a displayingfunction and a keyboard and/or a mouse having an input receivingfunction. The UI 20 is an example of a display device.

The communication I/F 30 includes hardware configured to communicatewith the printer 2 and a hardware configured to access the Internet. Thecommunication I/F 30 may include multiple interfaces respectivelyemploying different communication methods. Examples of the communicationmethods may include the network communication, a USB communication andthe like. Further, the communication methods may be wired or wireless.

The controller 10 includes a CPU 11 and a memory 12. The CPU 11 is anexample of a computer. The memory 12 includes a ROM, a RAM, anon-volatile memory and a buffer of the CPU 11, and stores variousapplication programs (hereinafter, referred to as “APP's”) and variouspieces of data. According to the present specification, details of thememories could be ignored and any memory having a suitable functioncould be employed as the memory 12. The CPU 11 executes variousprocesses in accordance with programs retrieved from the memory 12 or inaccordance with user's instructions. It is noted that the controller 10in FIG. 1 is a collective name including hardware and software used tocontrol the PC 1 and does not necessarily represent a single piece ofhardware.

An example of the memory 12 may be a computer-readable storage medium.The computer-readable storage medium is a non-transitory medium.Examples of the non-transitory medium are, besides the above-describedmemory 12, recording mediums such as a CD-ROM, a DVD-ROM and the like.It is noted that the non-transitory medium is also a tangible medium. Incontrast, an electric signal carrying a program, which is beingdownloaded from a server on the Internet, is a signal medium which is akind of computer-readable media, but not included in the non-transitorycomputer-readable medium.

The memory 12 stores, as shown in FIG. 1 , the OS 21 implemented with ageneral-use printing program 41, a supporting program 42 and an editingAPP 43. The supporting program 42 is an example of a supporting program.The supporting program 42 is, for example, a hardware support APP(abbreviated as HSA) of which specification is published by MicrosoftCorporation. The OS 21 is, for example, Microsoft Windows®, MacOS® orLinux®. It is noted that, in the memory 12, in addition to the data/APPshown in FIG. 1 , various pieces of data including information regardingconnected device, various programs of browser and the like are stored.

The general-use printing program 41 is an APP to cause various printerssuch as the printer 2 to execute printing from the PC 1 and is anOS-standard printing program which is implemented in the OS 21 inadvance. The general-use printing program 41 according to the presentembodiment is configured to generate print data the printer can use forprinting based on image data subjected to be printed.

The general-use printing program 41 is a general-purpose APP which canbe used for any of a plurality of models of printers supplied by variousprinter venders. The general-use printing program 41 is configured tocause any of the plurality of models of printers to perform operationswhich are commonly implemented in the plurality of models of printers.Alternatively, the general-use printing program 41 may be a programsupplied from the printer venders to a vender of the OS 21 (e.g., theprogram may be a kind of printer driver, which is supplied by a printervender, to be implemented in the OS 21 in advance) so that thegeneral-use printing program 41 is implemented in the OS 21 in advance.

The supporting program 42 is a program which executes processes based onthe instruction by the OS 21 in association with the startup of thegeneral-use printing program 41 and an APP which supports controlling ofhardware, such as the printer 2, subjected to the instruction. Thesupporting program 42 is started, for example, by the general-useprinting program 41. The supporting program 42 is a program that isprepared by printer venders, such as a vender of the printer 2, for eachtype of printers. For example, a supporting program 42 for inkjetprinters and a supporting program 42 for laser printers are prepared.The supporting program 42 may be prepared not only for each type ofprinters but also for each model or for each model series of printers.

The vender of the printer registers the supporting program 42 with aplatform supplied by the vender of the OS 21 in accordance with aprocedure designated by the vender of the OS 21. When a printer 2 isnewly connected to the PC 1 and the supporting program 42 adapted to theprinter 2 is registered with the platform, the OS 21 downloads thesupporting program 42 from a sever in which the supporting program 42 isstored and implements the same in the PC 1.

Then, the OS 21 associates identification information of the implementedsupporting program 42 with the printer information of the newlyconnected printer 2 and stores the same in the memory 12. In the PC 1 towhich a plurality of models of printers are connected, a plurality ofsupporting programs respectively corresponding to a plurality of typesof the plurality of models are implemented in the OS 21, and informationassociating the plurality of printers with the plurality of supportingprograms is stored in the memory 12. That is, in the memory 12, as theprinter information for each of the printers connected to the PC 1,information on the supporting program 42 corresponding to each printeris stored in addition to the model information and the accessinformation of each printer.

The editing APP is, for example, an APP for generating and/or editingimage data and document data. Examples of the editing APP 43 areMicrosoft Word® and Power Point®. Further, the editing APP 43 may be anAPP provided by the vender of the printer 2 and/or printer 3. Theediting APP 43 is configured to receive a user operation including aninstruction to cause the printer 2 to perform a particular operation.Specifically, for example, the editing APP 43 receives, through the UI20, a print instruction which causes the printer 2 to execute printing.The editing APP 43 further receives, through the UI 20, a previewinstruction for causing the UI 20 to display a preview of an image to beprinted.

It is noted that processes and respective process steps in thesequential charts described below basically indicate processes of theCPU 11 in accordance with instructions described in respective programssuch as the supporting program 42. That is, in the following descriptionof the processes and steps, terms “determine,” “extract,” “select,”“calculate,” “identify,” “obtain,” “receive,” “control” and the like arethose performed by the CPU 11. It is noted that the processes by the CPU11 include controlling of hardware using an API of the OS 21. In thefollowing description, operations of the programs will be described withomitting the detailed description of the OS 21. That is, in thefollowing description, a description “a program B controls hardware C”may be interpreted to “a program B uses the API of the OS 21 to controlthe hardware C.” Further, a process of the CPU 11 in accordance with theinstruction described in a program may be described in a simplifiedmanner. For example, the name of the program is omitted and simplydescribed such that “the CPU 11 performs.” Further, a process of the CPU11 in accordance with an instruction described in the program may bedescribed in a simplified manner such that “the program A performs” withomitting the term “CPU.”

It is noted that the term “obtain” is used to mean that a request is notnecessarily be made. That is, a process of the CPU 11 to receive datawithout any request is included within a concept that “the CPU 11obtains data.” Further, the term “data” in the present specification isused to mean a bit array readable by a computer. Multiple pieces of datahaving different formats but substantially the same contents will betreated as the same data. So is the information in the presentspecification. It is noted that terms “request” and “instruct” representconcepts of outputting information indicating something is requested andinformation indicating something is instructed, respectively. It is alsonoted that information representing something is requested or somethingis instructed may be simply referred to by terms “request” or“instruct.”

Further, a process of the CPU 11 to determine whether or not informationA indicates an event B may be described conceptually such that “the CPU11 determines whether event B or not based on information A.”Furthermore, a process of the CPU 11 to determine whether informationindicates event B or event C may be described conceptually such that“the CPU 11 determines whether event B or event C based on informationA.”

Next, a configuration of the supporting program 42 and a printingprocedure including processes based on the supporting programs 42 of thepresent embodiment will be generally described with reference tosequential charts shown in FIGS. 2 and 3 . In the following description,a case where the PC 1 receives, through the UI 20 (e.g., with theediting APP 43), an instruction to execute printing with the printer 2through the general-use printing program 41 in a state where image datasubjected to be printed is designated and the supporting program 42corresponding to a type of a model of the printer 2 is implemented inthe PC 1 will be described.

The supporting program 42 includes a first interface and a secondinterface as interfaces for receiving execution commands. The firstinterface is an interface configured to receive a execution command fromthe general-use printing program 41. When the editing APP 43 receivesthe print instruction which designates the printer 2 corresponding tothe supporting program 42 and outputs a print execution notification tothe general-use printing program 41, the supporting program 42 receivesthe print execution notification through the first interface. The secondinterface is an interface configured to receive the execution commandfrom the general-use printing program 41. When the editing APP 43receives the preview instruction and outputs, to the general-useprinting program 41, an activation request for requesting to activatethe supporting program 42, the supporting program 42 receives theexecution command through the second interface. The print instruction isan example of a specific instruction or a first instruction, and thepreview instruction is an example of the specific instruction or asecond instruction.

As shown in FIG. 2 , the editing APP 43 causes the UI 20 to display animage editing screen (arrow A). In the image editing screen, forexample, a document which has been edited using the editing APP 43 or apicture which has been read using the editing APP 43 is displayed as animage. Upon receiving an instruction to display a print setting screenthrough the image editing screen, the editing APP 43 causes the UI 20 todisplay the print setting screen for receiving a selection of a printerto be caused to execute printing and settings of the print parameterssuch as sheet size and image quality. In the print setting screen, forexample, a print button for instructing to execute printing and apreview button for instructing to display a preview are displayed. Theediting APP 43 receives the print instruction from the user through theoperation of the print button through the UI 20 (arrow B). The editingAPP 43 receives the preview instruction from the user through theoperation of the preview button through the UI 20 (arrow B).

The print parameters include general-use parameters to which thegeneral-use printing program 41 is adapted and specific parameters towhich the general-use printing program 41 is not adapted. The specificparameters are, for example, intrinsic parameters intrinsic to a printerand. The general-use parameters are, for example, parameters for settingthe sheet size, the image quality and the color/monochromatic printing.The specific parameters are, for example, parameters for settingwatermarks and stapling. The editing APP 43 may receive, through theprint setting screen, only the general-use parameters or may receiveboth the general-use parameters and the specific parameters.

When the print instruction is received, the editing APP 43 delivers, tothe OS 21, the print execution notification which includes a content ofthe print instruction and which is for causing the general-use printingprogram 41 to execute a printing process. When the preview instructionis received, the editing APP 43 delivers, to the OS 21, the activationrequest which includes a content of the preview instruction and which isfor requesting to activate the supporting program 42. It is noted that,in FIG. 2 , operations of the OS 21 are omitted.

When the print execution notification or the activation request isreceived, the OS 21 activates the general-use printing program 41 anddelivers the print execution notification or the activation request tothe general-use printing program 41 (arrow C). The general-use printingprogram 41 can obtain various pieces of information included in theprint instruction or the preview instruction from the print executionnotification or the activation request. For example, the general-useprinting program 41 obtains image data of the image displayed in theimage editing screen as image data of an image subjected to be printedor subjected to be displayed as a preview. The general-use printingprogram 41 can further obtain information indicating a printer to becaused to execute printing, information indicating print parameters thathave been input to the print setting screen, and information identifyinga user who instructed to execute printing. It is noted that, as will bedescribed later, the supporting program 42 can use these pieces ofinformation as well.

The general-use printing program 41 generates intermediate image data byconverting a format of the image data included in the print executionnotification or the activation request to a format of the intermediateimage data and generates print job data including the intermediate imagedata (arrow D). There are various types of image data as the image dataincluded in the editing APP 43, and the general-use printing program 41converts the received image data to the intermediate image data that issuitable for the generation of the print data. The general-use printingprogram 41 generates the intermediate image data by using thegeneral-use parameters only. It is noted that, if the image dataincluded in the print execution notification is suitable for thegeneration of the print data, the generation of the intermediate imagedata may be omitted and the image data may be directly used as theintermediate image data. The intermediate image data is, for example,XPS format data. It is noted that the print job data includes, apartfrom the intermediate image data, the print parameters set through theediting APP 43.

Further, the general-use printing program 41 identifies, based on theinformation included in the print execution notification, a printerdesignated as a device to be caused to execute printing. For example,when the printer 2 is designated as the device to be caused to executeprinting, the general-use printing program 41 identifies the model ofthe printer 2 based on the model information of the printer included inthe printer information stored in the memory 12. Then, since thesupporting program 42 corresponding to the printer 2 designated by theprint instruction is stored in the memory 12, the general-use printingprogram 41 activates the supporting program 42 prior to startinggeneration of the print data by the general-use printing program 41 byoutputting an execution command for causing the supporting program 42 toexecute processes (arrow E).

When the print execution notification is received, the general-useprinting program 41 delivers an execution command to the first interfaceof the supporting program 42. On the other hand, when the activationrequest is received, the general-use printing program 41 delivers anexecution command to the second interface of the supporting program 42.It is noted that the supporting program 42 may include only oneinterface for receiving execution commands. In this case, when receivingthe print execution notification, the general-use printing program 41may be configured to deliver, to the supporting program 42 through theinterface, an execution command to which information indicating that theprint execution notification is received is attached. Further, whenreceiving the activation request, the general-use printing program 41may deliver, to the supporting program 42 through the interface, anexecution command to which information indicating that the activationrequest is received is attached.

When the supporting program 42 receives the execution command throughthe first interface or the second interface, the supporting program 42displays a print parameter editing screen for receiving settings of theprint parameters and receives the settings of the print parametersthrough the UI 20 (arrow F). The process at the arrow F is an example ofa receiving process, and the print parameters received through theprocess at the arrow F are examples of a processing setting. Forexample, the supporting program 42 causes the UI 20 to display a printparameter editing screen for receiving settings of the specificparameters of the printer 2 corresponding to the supporting program 42and receives the settings of the specific parameters. It is noted thatthe supporting program 42 may receive settings of both the general-useparameters and the specific parameters through the print parameterediting screen or may display different print parameter setting screensfor receiving the settings of the general-use parameters and forreceiving the settings of the specific parameters.

As the print parameter editing screen for receiving the settings of thespecific parameters, the supporting program 42 causes the UI 20 todisplay, for example, a watermark editing screen 200 shown in FIG. 4A.For example, the supporting program 42 displays, on the watermarkediting screen 200, specific parameters for a watermark which have beenset by operating the watermark editing screen 200 through the UI 20.Further, the supporting program 42 receives settings of a watermark bystoring, in the memory 12, the specific parameters that are displayed inthe watermark editing screen 200 in response to operation of a printbutton 201 through the UI 20.

Based on the print parameters of which settings have been receivedthrough the print parameter editing screen, the supporting program 42processes the print parameters attached to the execution command. Forexample, the supporting program 42 adds print parameters of whichsettings have been newly received to the print parameters attached tothe execution command and/or rewrites the print parameters attached tothe execution command with print parameters of which settings have beennewly received. It is noted that, at the arrow F, the supporting program42 may receive the print parameters attached to the execution command asit is.

The supporting program 42 which received the settings of the printparameters at the arrow F obtains current state information indicatingcurrent state and settings of the printer 2 from the printer 2 throughthe communication I/F 30 (arrow G). The current state informationincludes, for example, status information indicating current state ofthe printer 2 and setting information indicating settings that arecurrently stored in an internal memory of the printer 2. The statusinformation includes, for example, job information concerning printingoperations and information indicating whether there remains stapleneedles. The setting information includes, for example, informationconcerning sheet sizes of respective trays and information concerningwhether there are finisher functions.

The supporting program 42 determines whether a message displayingcondition is satisfied (arrow I). Specifically, for example, thesupporting program 42 checks whether one or more specific settings aremade by the print parameters. One or more specific settings fordisplaying messages are stored in the supporting program 42 in advance.For example, settings which designate high quality papers such as“postcard” are stored in the supporting program 42 as the specificsettings. When the print parameters include a parameter indicating“postcard” being the specific setting, the supporting program 42determines that the message displaying condition is satisfied. In thiscase, the supporting program 42 causes the UI 20 to display a dialogue110 shown in FIG. 5A and displays a message 114 for making the userconfirm whether to continue printing (arrow J).

Also, for example, the supporting program 42 compares settings indicatedby the print parameters of which settings have been received at thearrow F and settings indicated by the current state information obtainedat the arrow G to check whether the settings indicated by the printparameters and the settings indicated by the current state informationcoincide or not. For example, if the type of sheet indicated by theprint parameter is “glossy paper” whereas the type of sheet included inthe settings indicated by the current state information is “standardpaper” and thus they do not coincide, the supporting program 42determines that the message displaying condition is satisfied. In thiscase, the supporting program 42 causes the UI 20 to display a dialogue120 shown in FIG. 5B and displays a message 124 notifying the mismatchof the settings (arrow J).

The dialogue 110 includes a continue button 111, a cancel button 112 anda reset button 113. The dialogue 120 includes a continue button 121, acancel button 122 and a reset button 123. In order to instruct toexecute printing on the postcard or to give permission to print on thestandard paper, the user operates the continue button 111 or 121 throughthe UI 20.

As shown in FIG. 3 , when an operation of the continue button 111 or thecontinue button 121 is received, the supporting program 42 generatesprocessed intermediate image data (arrow K). For example, if a settingof a watermark is received at the arrow F, in accordance with settingsof the watermark, the supporting program 42 executes a process forcombining the watermark to an image indicated by the intermediate imagedata generated by the general-use printing program 41. It is noted that,when the message displaying condition is not satisfied, that is, forexample, when settings indicated by the print parameters do not includeany specific setting or when settings indicated by the print parameterscoincide with settings indicated by the current state information, thesupporting program 42 may execute the process at the arrow K withoutexecuting the process at the arrow J. It is noted that, in FIG. 3 ,descriptions of processes in case the cancel button 112 or 122 isoperated or in case the reset button 113 or 123 is operated are omitted.

The supporting program 42 displays a confirmation screen aftergenerating the processed intermediate image data in response to theoperation of the continue button 111 or the continue button 121 (arrowL). For example, the supporting program 42 displays a dialogue 150 shownin FIG. 4B to make final confirmation to the user on whether to executeprinting or not. The dialogue 150 includes an execute button 151, acancel button 152 and a reset button 153. It is noted that, if thedialogue shown in FIG. 5A or FIG. 5B had been displayed, the process atthe arrow L may be omitted since the user's intension to executeprinting has already been confirmed through the operation of thecontinue button 111 or the continue button 121. In this case, thesupporting program 42 operates in the same way as in the case where theexecute button 151 is operated if the continue button 111 or 121 isoperated, as in the case where the cancel button 152 is operated if thecancel button 112 or 122 is operated, and as in the case where the resetbutton 153 is operated if the reset button 113 or 123 is operated.

As shown in FIG. 3 , when the execute button 151 is operated through theUI 20, the supporting program 42 determines which of the executioncommand based on the print instruction through the editing APP 43 andthe execution command based on the preview instruction has been receivedfrom the general-use printing program 41 (arrow M). Specifically, whenthe execution command is delivered from the general-use printing program41 to the first interface, the supporting program 42 determines that theexecution command based on the print instruction is received. On theother hand, when the execution command is delivered from the general-useprinting program 41 to the second interface, the supporting program 42determines that the execution command based on the preview instructionis received. It is noted that, in case the supporting program 42includes only one interface, the supporting program 42 can make similardetermination based on the information attached to the executioncommand.

If it is determined that the execution command based on the printinstruction is received, the supporting program 42 outputs, to thegeneral-use printing program 41, an end notification to which a contentto be printed (e.g., the processed intermediate image data) is attached(arrow N). The general-use printing program 41 generates print data inaccordance with the content to be printed attached to the endnotification (arrow O). For example, the general-use printing program 41generates print data based on the processed intermediate image dataattached to the end notification. The print data generated by thegeneral-use printing program 41 is print data of a format that can beused in printing with various types of printers. The print data is, forexample, PWG Raster format data or PDF format data. It is noted that aprocess of processing intermediate image data at the arrow K and aprocess of transmitting the processed intermediate image data to thegeneral-use printing program 41 are examples of a processing process.

After the generation of the print data, the general-use printing program41 transmits a print command to the printer 2 (arrow P). The printer 2executes printing in accordance with the print data attached to theprint command.

It is noted that the supporting program 42 may receive the print datagenerated by the general-use printing program 41 from the general-useprinting program 41 and may edit the print data. For example, thesupporting program 42 may add a command for causing the printer 2 toexecute a function unique to the printer 2 to the print data. Thefunction unique to the printer 2 includes, for example, a toner savingfunction and a finisher function. If the printer 2 has functions ofadding watermarks, header/footer and the like to an image by itself, thesupporting program 42 may add commands for causing the printer 2 toexecute these functions to the print data. In case the supportingprogram 42 edits the print data, the supporting program 42 may outputthe edited print data to the general-use printing program 41, and thegeneral-use printing program 41 may transmit a print command for causingthe printer 2 to execute printing of the edited print data to theprinter 2.

On the other hand, if it is determined that the execution command basedon the preview instruction is received, the supporting program 42outputs an end notification notifying that the process is to beterminated to the general-use printing program 41 (arrow Q). The endnotification includes the processed intermediate image data. After thereceipt of the preview instruction, upon receiving the end notificationnotifying that the process is to be terminated from the supportingprogram 42, the general-use printing program 41 determines that there isno need to generate print data. In this case, the general-use printingprogram 41 outputs a response notification to the editing APP 43 withoutgenerating print data (arrow R). The general-use printing program 41outputs the response notification while attaching the processedintermediate image data included in the end notification to the responsenotification.

The editing APP 43 displays a preview in response to the responsenotification (arrow S). That is, the editing APP 43 causes the UI 20 todisplay an image indicated by the processed intermediate image dataattached to the response notification. Since, as in the case whereprinting is to be executed, the processed intermediate image data isgenerated by the supporting program 42, the editing APP 43 can cause theUI 20 to display a preview similar to a printed result when the printingis actually performed.

It is noted that the supporting program 42 may attach the printparameters of which settings have been received at the arrow F, that is,print parameters which have been processed at the arrow F, to the endnotification, and the general-use printing program 41 may deliver theresponse notification including the processed print parameters to theediting APP 43. When the next print instruction is received afterdisplaying the preview at the arrow S, the editing APP 43 may attach theprocessed print parameters to the print execution notification. In thiscase, the processed print parameters are set in an area, which isprepared by a vender, of the print execution notification. Thegeneral-use printing program 41 may output an execution command to whichthe processed print parameters and the intermediate image data areattached the first interface of the supporting program 42. In this case,the supporting program 42 may reflect the print parameters attached tothe execution command to the print parameter editing screen. Accordingto this configuration, it becomes possible to reduce burden for the userto repeatedly perform the same print settings and thus it becomespossible to improve usability of the print system.

When editing an image on the image editing screen or making printsettings on the print setting screen after the displaying of thepreview, the editing APP 43 may reflect the processed print parametersto the image to be edited or to the print setting screen. According tothis configuration, it becomes less likely that settings that areagainst the user's intention are repeatedly made.

Further, when the cancel button 152 in the dialogue 150 is operatedthrough the UI 20, the supporting program 42 outputs an end notificationnotifying that the process is to be terminated to the general-useprinting program 41 (arrow T). In this case, the supporting program 42do not attach the processed intermediate image data to the endnotification since there is no need to generate print data. In responseto the end notification, the general-use printing program 41 aborts theprinting process before generating print data (arrow U). Then, thegeneral-use printing program 41 outputs a cancel notification to theediting APP 43 (arrow V). According to this configuration, it isexpected that wasted printings that the user did not intend will beavoided.

It is noted that the editing APP 43 which received the cancelnotification may cause the UI 20 to display the image editing screen toreceive corrections of the image subjected to be printed, the printparameters that have been input to the print setting screen and thelike. Then, the editing APP 43 may receive the print instruction or thepreview instruction again.

As with the response notification at the arrow R, the processedintermediate image data may be attached to the cancel notification. Inthis case, as with the process at the arrow S, after the displaying ofthe preview, the editing APP 43 may display the image editing screen toreceive editing of the image subjected to be printed, the printparameters that have been input to the print setting screen and thelike.

On the other hand, when the reset button 153 is operated through the UI20, the supporting program 42 outputs an end notification, notifyingthat the print parameters will be reset, to the general-use printingprogram 41 (arrow W). Upon receiving the end notification, thegeneral-use printing program 41 receives resetting of the printparameters (arrows X and E). That is, for example, the editing APP 43displays the print setting screen again. According to thisconfiguration, since the user can correct the print parameters, it isexpected that printings that are against the user's intention will beavoided.

When displaying the print parameter editing screen again, the settingswhen the resetting button 135 is operated may be reflected to the printparameter editing screen. In this case, since the user can change thesettings while confirming the previous settings, usability of the printsystem improves. It is noted that default value of the print parametermay be displayed on the print parameter editing screen that is displayedagain.

It is noted that, in case the message 114 or 124 is displayed as shownin FIG. 5A or FIG. 5B at the arrow J, when the user do not want toexecute printing on the postcard or when the user do not want to executeprinting on the standard paper, the user operates the cancel button 112or 122 or the reset button 113 or 123 through the UI 20. In this case,since the supporting program 42 executes operations similar to those inthe above-described case where the cancel button 152 is operated oroperations similar to those in the above-described case where the resetbutton 153 is operated, wasted printings that are against the user'sintention can be avoided.

As described above, if it is determined that the execution command basedon the preview instruction is received, the supporting program 42 of thefirst embodiment does not cause the general-use printing program 41 togenerate print data based on the processed intermediate image data. Thatis, print data will not be transmitted to the printer 2. In this case,the general-use printing program 41 outputs the response notification towhich the processed intermediate image data is attached to the editingAPP 43. Therefore, it becomes possible to display an image indicated bythe processed intermediate image data on the editing APP 43 beforeexecuting printing and thus opportunities for the user to confirm animage which will be printed increase. As a result, it becomes lesslikely that printing based on an image to which processes that the userdid not intend are made.

Furthermore, since the editing APP 43 displays a preview based on theprocessed intermediate image data which is generated in the same way aswhen executing printing, the preview by the editing APP 43 can reflectthe settings of the watermark more accurately than in a case where theediting APP 43 displays a preview without using the supporting program42. Therefore, even if the user confirms the preview by the editing APP43 and inputs the print instruction, since it is less likely that theprinted result is against the user's intention, redoing of the printingcan be suppressed.

The supporting program 42 outputs the end notification to which thecontent to be printed is attached when the execution command based onthe print instruction is received, and outputs the end notificationnotifying that the process it to be terminated when the executioncommand based on the preview instruction is received. That is, thecontent of the end notification which the supporting program 42 outputsto the general-use printing program 41 changes in accordance with thetype of instruction the editing APP 43 receives. The general-useprinting program 41 generates print data and transmits the print data tothe printer 2 or outputs the response notification to the editing APP 43in accordance with the content of the end notification. Therefore, thesupporting program 42 can control whether to deliver the processedintermediate image data to the editing APP 43 or not in accordance withthe execution command output from the general-use printing program 41 inaccordance with the instruction that the editing APP 43 has received.

Second Embodiment

Hereinafter, referring to a sequential chart shown in FIG. 6 , a printsystem using programs according to the second embodiment of the presentdisclosure will be described. The second embodiment differs from thefirst embodiment in that the supporting program 42 receives the printinstruction and the preview instruction. The difference from the firstembodiment will be described herein. It is noted that, in FIG. 6 , thesame numerals as those in FIGS. 2 and 3 are used for processes that arecommon to those in FIGS. 2 and 3 .

The supporting program 42 which received the execution command displaysthe print parameter editing screen for receiving settings of the printparameters (arrow a). For example, as shown in FIG. 4A, the watermarkediting screen 200, which is an example of the print parameter editingscreen displayed by the supporting program 42, includes a print button201, a cancel button 202 and a preview button 203.

When an operation of the preview button 203 is received through the UI20, the supporting program 42 generates the processed intermediate imagedata (arrow K) and displays a preview (arrow b). For example, whensettings of a watermark is received at the arrow a, the supportingprogram 42 causes the UI 20 to display a confirmation screen 160 shownin FIG. 4C in accordance with the settings. The confirmation screen 160includes an execute button 161, a cancel button 162, a reset button 163and a preview image 164.

When an operation of the cancel button 162 is received through the UI20, the supporting program 42 outputs an end notification notifying thatthe process is to be terminated to the general-use printing program 41(arrow c). In this case, the supporting program 42 attaches, to the endnotification, the processed intermediate image data that is generatedwhen displaying a preview.

Upon receiving the end notification including the processed intermediateimage data, the general-use printing program 41 aborts the printingprocess without generating print data (arrow d). Then, since theprocessed intermediate image data is attached to the end notification,the general-use printing program 41 outputs a response notificationincluding the processed intermediate image data to the editing APP 43(arrow e).

The editing APP 43 detects that printing has been aborted by receivingthe response notification including the processed intermediate imagedata. In this case, after displaying an image indicated by the processedintermediate image data as a preview, the editing APP 43 may display theimage editing screen and receive editing of the image and/or the printparameters.

On the other hand, when an operation of the execute button 161 isreceived through the UI 20, the supporting program 42 executes theprocesses at the arrows N-P to execute printing. When an operation ofthe reset button 163 is received through the UI 20, the supportingprogram 42 terminates the displaying of the confirmation screen 160,executes the processes at the arrows W, X and E and receives resettingof the print parameters.

Not operating the execute button 161 is an example of an image responsecondition. The end notification (arrow N) that is to be output when theexecute button 161 is operated after the displaying of the preview is anexample of second information. The end notification (arrow c) that is tobe output when the cancel button 162 is operated after the displaying ofthe preview is an example of first information.

When an operation of the print button 201 included in the watermarkediting screen 200, which is a screen displayed at the arrow a, isreceived through the UI 20, the supporting program 42 generates theprocessed intermediate image data (arrow K) and executes the processesat the arrows N-P to execute printing.

When an operation of the cancel button 202 included in the watermarkediting screen 200 is received through the UI 20, the supporting program42 executes the processes at the arrows T-V to abort the print jobbefore the general-use printing program 41 generates print data.

As described above, in the second embodiment, the supporting program 42displays a preview when the preview button 203 is operated and, when theexecute button 161 is operated after the displaying of the preview, thegeneral-use printing program 41 generates print data and transmits theprint data to the printer 2. Further, when the cancel button 162 isoperated after the displaying of the preview, the general-use printingprogram 41 does not generate print data based on the processedintermediate image data but outputs the response notification includingthe processed intermediate image data to the editing APP 43. Therefore,opportunities for the user to confirm an image indicated by theprocessed intermediate image data before executing printing increaseand, as a result, it becomes more likely that printing based on an imageto which processes that the user did not intend are made is avoided.

The supporting program 42 of the second embodiment changes the contentof the end notification to be output to the general-use printing program41 in accordance with whether the execute button 161 is operated or notafter the displaying of a preview. The general-use printing program 41changes the content of the response to the editing APP 43 in accordancewith the content of the end notification. Therefore, the supportingprogram 42 can control whether to deliver the processed intermediateimage data to the editing APP 43 or not in accordance with whether theexecute button 161 has been operated or not.

It is noted that the present embodiment is only an illustrative exampleand is not intended to limit aspects of the present disclosures.Accordingly, the present disclosures can be modified or enhanced withoutdeparting from aspects of the disclosures. For example, the deviceconnected to the PC 1 need not be limited to the printer but may be anydevice which has a printing function (e.g., an MFP, a copier, afacsimile machine and the like). Further, the number of printersconnected to the PC 1 need not be limited to that in the illustratedexample but may be one or three or more.

A module that executes each of the processes of the present embodimentis not limited to the supporting program 42 but may be a program thatreceives instructions from the OS 21 when executing printing using thegeneral-use printing program 41 of the OS 21. For example, the modulemay be a print workflow app (i.e., Print workflow) of whichspecification is disclosed by Microsoft.

After the process at the arrow K shown in FIG. 3 , the supportingprogram 42 may display the dialogue 150 (arrow L) after displaying thepreview. In the process at the arrow L shown in FIG. 3 , the supportingprogram 42 may display the confirmation screen 160 shown in FIG. 4C inplace of the dialogue 150 shown in FIG. 4B. According to theseconfigurations, since the user is made to confirm whether to executeprinting based on the preview image, it is expected that printings thatare against the user's intention will be suppressed. The displaying ofthe preview or the confirmation screen 160 may be executed when theexecution command based on the print instruction through the editing APP43 is received but may not be executed when the execution command basedon the preview instruction is received.

When the generation of the processed intermediate image data at thearrow K shown in FIG. 3 is failed, the supporting program 42 maydetermine that there is a problem in the print parameters and executethe process at the arrow L.

The confirmation screen 160 need not be displayed separately from theprint parameter editing screen (e.g., the watermark editing screen).Specifically, after the continue button 121 is operated (arrow K),displaying of the confirmation screen 160 (arrow L) may be omitted. Forexample, when the print button 201 in the watermark editing screen 200shown in FIG. 4A has been operated, the supporting program 42 determineswhich of the execution command based on the print instruction and theexecution command based on the preview instruction has been received(arrow M). and if it is determined that the execution command based onthe print instruction has been received, the supporting program 42 mayexecute the processes at the arrows N-P shown in FIG. 3 , and if it isdetermined that the execution command based on the preview instructionhas been received, the supporting program 42 may execute the processesat the arrows Q-S. For example, the general-use printing program 41 maynot attach the processed intermediate image data to the responsenotification at the arrow R.

In the processes shown in FIG. 2 and FIG. 3 , as shown in FIG. 6 , thesupporting program 42 may display a preview in response to the operationof the preview button 203, and the general-use printing program 41 maygenerate print data and transmit the print data to the printer 2 or maytransmit the response notification to the editing APP 43 withouttransmitting print data to the printer 2 in accordance with theoperation of the buttons 161-163 of the confirmation screen 160 forconfirming whether to display the preview.

In any of the sequential charts disclosed in the embodiment, the orderof multiple processes at arbitrary multiple steps may be changedarbitrarily or may be executed in parallel unless there occurs conflictsin processing contents.

The processes disclosed in the present embodiment may be executed by asingle CPU, a plurality of CPU's, hardware such as an ASIC or acombination thereof. Further, the processes disclosed in the presentembodiment may be realized by various modes such as a non-transitoryrecording medium storing programs for executing the processes, methodsfor executing the processes and the like.

What is claimed is:
 1. A non-transitory computer-readable recordingmedium for an information processing apparatus, the informationprocessing apparatus having a controller, a general-use printing programbeing implemented in an operating system of the information processingapparatus, an application program being implemented in the informationprocessing apparatus, the recording medium containingcomputer-executable programs realizing a supporting programcorresponding to a printer connectable to the information processingapparatus, wherein, the supporting program causing, when executed by thecontroller, the information processing apparatus to perform: a receivingprocess when the general-use printing program receives a particularinstruction from the application program, the application program beingconfigured to input the particular instruction to the general-useprinting program in a state where an image to be printed beingdesignated through the application program, the receiving process beinga process of receiving a processing setting used for processing thedesignated image, the particular instruction being an instruction toexecute a particular process regarding the designated image; and aprocessing process of, based on the received processing setting,processing intermediate image data indicating the designated image intoprocessed data; in a case of previewing, an outputting process ofoutputting the processed data, which is processed in the processingprocess based on the received processing setting, to the applicationprogram such that a preview based on the processed data is displayed bythe application program; and in a case of printing, a further processusing the processed data for printing.
 2. The non-transitorycomputer-readable recording medium according to claim 1, wherein, in theprocessing process, a particular image representing particularinformation is combined with the designated image based on theprocessing setting.
 3. The non-transitory computer-readable recordingmedium according to claim 1, wherein, in the processing process, awatermark is combined with the designated image based on the processingsetting.
 4. The non-transitory computer-readable recording mediumaccording to claim 1, wherein the information processing apparatuscomprises a display, and wherein, in the receiving process, a settingscreen configured to receive a user input of the processing setting isdisplayed after the general-use printing program outputs theintermediate image data.
 5. An information processing apparatus having acontroller, wherein a general-use printing program is implemented in anoperating system of the information processing apparatus, wherein asupporting program corresponding to a printer connectable to theinformation processing apparatus is implemented in the informationprocessing apparatus, wherein an application program is implemented inthe information processing, the application program being configured toreceive a print instruction to cause the printer, through thegeneral-use printing program, to execute printing of an image, whereinthe controller performs: a receiving process when the general-useprinting program receives a particular instruction from the applicationprogram, the application program being configured to input theparticular instruction to the general-use printing program in a statewhere an image to be printed being designated through the applicationprogram, the receiving process being a process of receiving a processingsetting used for processing the designated image, the particularinstruction being an instruction to execute a particular processregarding the designated image; and a processing process of, based onthe received processing setting, processing intermediate image dataindicating the designated image into processed data; in a case ofpreviewing, an outputting process of outputting the processed data,which is processed in the processing process based on the receivedprocessing setting, to the application program such that a preview basedon the processed data is displayed by the application program; and in acase of printing, a further process using the processed data forprinting.
 6. The information processing apparatus according to claim 5,wherein, in the processing process, a particular image representingparticular information is combined with the designated image based onthe processing setting.
 7. The information processing apparatusaccording to claim 5, wherein, in the processing process, a watermark iscombined with the designated image based on the processing setting. 8.The information processing apparatus according to claim 5, wherein theinformation processing apparatus comprises a display, and wherein, inthe receiving process, a setting screen configured to receive a userinput of the processing setting is displayed after the general-useprinting program outputs the intermediate image data.
 9. A printingmethod to cause a printer connectable to an information processingapparatus to execute printing based on print data generated in theinformation processing apparatus, a general-use printing program beingimplemented in an operating system of the information processingapparatus, a supporting program corresponding to a printer connectableto the information processing apparatus being implemented in theinformation processing apparatus, an application program beingimplemented in the information processing, the application program beingconfigured to receive a print instruction to cause the printer, throughthe general-use printing program, to execute printing of an image,wherein the printing method includes an image processing method providedby the supporting program, the image processing method including:receiving a processing setting when the general-use printing programreceives a particular instruction from the application program, theapplication program being configured to input the particular instructionto the general-use printing program in a state where an image to beprinted being designated through the application program, the processingsetting being used for processing the designated image, the particularinstruction being an instruction to execute a particular processregarding the designated image; and based on the received processingsetting, processing intermediate image data indicating the designatedimage into processed data; in a case of previewing, outputting theprocessed data, which is processed in the processing process based onthe received processing setting, to the application program such that apreview based on the processed data is displayed by the applicationprogram; and in a case of printing, using the processed data forprinting.
 10. The printing method according to claim 9, wherein, in theprocessing process, a particular image representing particularinformation is combined with the designated image based on theprocessing setting.
 11. The printing method according to claim 9,wherein, in the processing process, a watermark is combined with thedesignated image based on the processing setting.
 12. The printingmethod according to claim 9, wherein the information processingapparatus comprises a display, and wherein, in the receiving process, asetting screen configured to receive a user input of the processingsetting is displayed after the general-use printing program outputs theintermediate image data.